#pragma once
#include <iostream>
#include <string>
#include <sstream>
#include "ListaTemplate.h"
#include "Curso.h"

using namespace std;


class Estudiante	//Clase base
{
protected:
	static const int valorMatricula;
	string nombre;
	string apellido1;
	string apellido2;
	string cedula;
	string nacionalidad;
	string carne;

	Lista<Curso> *cursos;	//Cursos matriculados
public:
	Estudiante(string, string, string, string, string, string);
	virtual ~Estudiante();
	string getNombre();
	string getApellido1();
	string getApellido2();
	string getCedula();
	string getNacionalidad();
	string getCarne();
	Lista<Curso> *getCursos();
	void setNombre(string);
	void setApellido1(string);
	void setApellido2(string);
	void setNacionalidad(string);
	virtual string toString()=0;
    void agregaCurso(Curso *);
    int creditosTotales();
    virtual float arancel()=0;
    void setCursos(Lista<Curso>*);
    unsigned int gastosMatricula();
	bool operator ==(string);

};
